package com.estagio.bean;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.context.RequestContext;
import org.primefaces.event.TabChangeEvent;

import com.estagio.entity.Modalidade;
import com.estagio.session.ModalidadeSession;

@ManagedBean(name="modalidadeBean")
@SessionScoped
public class ModalidadeBean {
	
	private Modalidade modalidade = new Modalidade();
	private List<Modalidade> listaModalidade = null;
	private Modalidade modalidadeSelecionado;
	private String mensagem;

	public Modalidade getModalidade() {
		return modalidade;
	}

	public void setModalidade(Modalidade modalidade) {
		this.modalidade = modalidade;
	}

	public List<Modalidade> getListaModalidade() {
		return listaModalidade;
	}

	public void setListaModalidade(List<Modalidade> listaModalidade) {
		this.listaModalidade = listaModalidade;
	}

	public Modalidade getModalidadeSelecionado() {
		return modalidadeSelecionado;
	}

	public void setModalidadeSelecionado(Modalidade modalidadeSelecionado) {
		this.modalidadeSelecionado = modalidadeSelecionado;
	}

	public void saveEditModalidade() {
		ModalidadeSession modalidadeRN = new ModalidadeSession();
		Modalidade modalidade = this.modalidade;		
		this.mensagem = modalidadeRN.save(modalidade);

		FacesMessage faces = new FacesMessage(mensagem);
		System.out.println(mensagem);
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage(null, faces);	
		RequestContext.getCurrentInstance().update("formManterModalidade:growl");
	}	

	public void saveModalidade() {
		ModalidadeSession modalidadeRN = new ModalidadeSession();
		Modalidade modalidade = this.modalidade;		
		this.mensagem = modalidadeRN.save(modalidade);
		
		FacesMessage faces = new FacesMessage(this.mensagem);
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage(null, faces);		
	}


	public String deleteModalidade() {
		ModalidadeSession modalidadeRN = new ModalidadeSession();		
		Modalidade modalidade = this.modalidadeSelecionado;
		this.mensagem = modalidadeRN.delete(modalidade);
		this.modalidadeSelecionado = new Modalidade();
		this.listaModalidade = null;
		FacesMessage faces = new FacesMessage(mensagem);
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage(null, faces);
		return "consultarModalidade";
	}

	
	//FIND PROJETO / ATIVIDADE
	
	public void findModalidade() {
		List<Modalidade> lista = (List<Modalidade>) new ModalidadeSession().find(this.modalidade);
		System.out.println("array no find modalidadeBean: " + lista.size());
		this.listaModalidade = lista;	
	}
	
	//INVOCAR TELAS
	public String newModalidade() {
		this.modalidade = new Modalidade();
		return "manterModalidade";
	}
	
	public String consultarModalidade() {
		this.modalidade = new Modalidade();
		return "consultarModalidade";
	}

//	public String editarModalidade() {
//		this.loadStatus();
//		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");	
//		
//		this.modalidade = this.modalidadeSelect;
//		this.statusAtual = this.modalidade.getStatus();
//		try {
//			this.dtInicial = sdf.format(this.modalidade.getDtInicial());
//			this.dtFinal = sdf.format(this.modalidade.getDtFinal());	
//		} catch (Exception e) {
//			// TODO: handle exception
//		}
//		this.listaAtividade = this.modalidade.getAtividade();
//		System.out.println("Tamanho do array listaAtividade dentro do modalidade: " + listaAtividade.size());
//		
//		return "editarModalidade";
//	}
	
	public String excluirModalidade() {
		this.modalidade = this.modalidadeSelecionado;
		return "excluirModalidade";
	}
	
	
	public void clean() {
		this.listaModalidade = null;
		this.modalidade = new Modalidade();
	}
	

	private int currentTab = 0;

	public int getCurrentTab() {
	    return currentTab;
	}

	public void setCurrentTab(int currentTab) {
	    this.currentTab = currentTab;
	}
	
    public void onTabChange(TabChangeEvent event) {  
        //FacesMessage msg = new FacesMessage("Tab Changed", "Active Tab: " + event.getTab().getTitle());  
        System.out.println(event.getTab().getTitle());
        if(event.getTab().getTitle() == "Modalidade") {
        	this.setCurrentTab(0);
        	RequestContext.getCurrentInstance().update("tabViewModalidade");
        } else if (event.getTab().getTitle() == "Atividade") {
        	this.setCurrentTab(1);
        	RequestContext.getCurrentInstance().update("tabViewModalidade");
        } else if (event.getTab().getTitle() == "Milestone") {
        	this.setCurrentTab(2);    	
        	RequestContext.getCurrentInstance().update("tabViewModalidade");
        	//RequestContext.getCurrentInstance().update("formManterMilestone");
        }
        
        //FacesContext.getCurrentInstance().addMessage(null, msg);  
        System.out.println("CurrentTab: " + this.currentTab);       

    }


    
    
	
}
